09. 文本 + 练习:JOIN 回顾

JOIN 回顾

我们回顾下你编写的第一个 JOIN 语句。

SELECT orders.*
FROM orders
JOIN accounts
ON orders.account_id = accounts.id;

以下是这两个表格的 ERD:

# 注意

注意,我们的 SQL 查询包含两个想要连接的表格:一个来自 FROM ,另一个来自 JOIN 。然后在 ON 中,我们 始终 主键 等于 外键

我们按照以下方式连接任何两个表格。

练习

参考以上图片。如果我们想连接 sales_reps region 表格,如何操作?

SOLUTION: ON sales_reps.region_id = region.id

连接多个表格

可以利用同一逻辑连接多个表格。看看下面的三个表格。

代码

如果我们想连接所有这三个表格,我们可以采用相同的逻辑。

FROM web_events
JOIN accounts
ON web_events.account_id = accounts.id
JOIN orders
ON accounts.id = orders.account_id

现在,我们的 SELECT 语句可以从所有三个表格中获取数据。同样, JOIN 存储的是表格, ON 是让 主键 等于 外键

SELECT 语句将需要指定你想从中获取列的表格:

SELECT web_events.channel, accounts.name, orders.total

我们可以继续按照这一流程操作,连接所有要连接的表格。为了提高效率,我们可能不希望这么做,除非需要从所有表格中获取信息。